import { getGoodsList } from '../../services/goods'
import regeneratorRuntime from '../../lib/runtime/runtime.js'
// 1.用户上滑页面，滚动条触底，开始加载下一条数据
// 1.1 找到滚动条触底事件 onReachBottom
// 1.2 判断还有没有下一页数据
//     1.2.1 获取到总页数
//     1.2.2 获取当前页数
//     1.2.3 判断当前页码是否大于总页数
// 1.3 假如没有下一页数据则弹出一个提示
// 1.4 如果还有，则加载下一页数据
//    1.4.1 当千页码++
//    1.4.2 重新发送请求
//    1.4.3 对请求回来的数据进行拼接而不是覆盖
// 1.5 下拉刷新
//- 整个数组清空
//- 页码是否重置为1
//- 重新请求
//- 数据请求回来后需要手动关闭等待效果
// pages/goods_list/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs:[
      {
        id:0,
        value:"综合",
        isActive:true
      },
      {
        id:1,
        value:"价格",
        isActive:false
      },
      {
        id:2,
        value:"销量",
        isActive:false
      }
    ],
    goodsList:[]
  },
  //接口需要的参数
  QueryParams:{
    query:"",
    cid:"",
    pagenum:1,
    pagesize:10
  },
  //总页数
  totalPages:1,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 获取到商品id
    console.log(options)
    const cid = options.cid||""
    this.QueryParams.query = options.query||""
    this.QueryParams.cid = cid;
    this._getGoodsList()
  },
  // 获取商品列表数据
 async _getGoodsList(){
   const { data } = await getGoodsList(this.QueryParams)
   // 获取总条数
   const total = data.message.total
   // 获取总页数
   this.totalPages = Math.ceil(total/this.QueryParams.pagesize)
   this.setData({
     goodsList:[...this.data.goodsList,...data.message.goods]
   })
   // 关闭下拉刷新的窗口 直接关闭对页面没有影响
   wx.stopPullDownRefresh()
  },
  //标题点击事件
  handleItemChange(e){
    //获取标题点击的索引
   
    const {index} = e.detail
    // 修改源数组
    const { tabs } = this.data
   
    tabs.forEach((item,i)=>i===index?item.isActive=true:item.isActive=false)
    this.setData({
      tabs
    })
  },
  //页面触底
  onReachBottom(){
    console.log('daodile')
    // 1.判断还有没有下一页数据
    if(this.QueryParams.pagenum>=this.totalPages){
      //没有下一页数据
      console.log('没有下一页')
      wx.showToast({
        title: '没有下一页数据',
      })
    }else{
      //请求下一页数据
      this.QueryParams.pagenum++
      this._getGoodsList()
    }
  },
  //下拉刷新事件
  onPullDownRefresh(){
    // 重置数组
    this.setData({
      goodsList:[]
    })
    //重置页码
    this.QueryParams.pagenum=1
    //重新发送请求
    this._getGoodsList()
  }
})
